package com.tt.payee.service.sysuser;

import com.github.pagehelper.PageInfo;
import com.tt.payee.domain.SysUser;
import com.tt.payee.domain.dto.SysUserParam;
import com.tt.payee.domain.vo.SysUserVo;

import java.util.List;
import java.util.Map;

/**
 * @author：mingzheng.chen@comeon365.com
 * @date:2020/3/18 11:04
 */
public interface SysUserService {

    /**
     * 获取所有用户
     *
     * @return
     */
    List<Map> getAllUsersToListMap();

    /**
     * 根据参数模糊搜索
     *
     * @param currentPage
     * @param pageSize
     * @param sysUserParam
     * @return
     */
    PageInfo<SysUserVo> getUsersByRules(Integer currentPage, Integer pageSize, SysUserParam sysUserParam);

    /**
     * 分页获取所有用户
     *
     * @param currentPage
     * @param pageSize
     * @return
     */
    PageInfo<SysUserVo> getUsersByPages(Integer currentPage, Integer pageSize);

    /**
     * 修改用户积分
     *
     * @param uid
     * @param type
     * @param point
     * @param message
     * @return
     */
    Integer updateUserPoint(Integer uid,Integer type,Double point,String message);

    /**
     * 根据uid编辑用户状态
     *
     * @param uid
     * @return
     */
    Integer editUserStatus(Integer uid);

    /**
     * 根据Uid修改指定用户备注
     *
     * @param uid
     * @param remark
     * @return
     */
    Integer editUserRemark(Integer uid,String remark);

    /**
     * 修改用户 邀请数量（定时任务）
     * @return
     */
    int referralNumRefreshJob();

    /**
     * 查询用户表信息
     *
     * @param uId Long
     * @return 用户表信息
     */
    public SysUser getById(Long uId);

    /**
     * 查询用户表一个信息
     *
     * @return 用户表信息
     */
    public SysUser getOne(SysUser sysUser);


    /**
     * 新增用户表
     *
     * @param sysUser 用户表信息
     * @return 结果
     */
    public SysUser insert(SysUser sysUser);

    /**
     * 修改用户表
     *
     * @param sysUser 用户表信息
     * @return 结果
     */
    public int update(SysUser sysUser);

    int changeAttr(SysUser sysUser);

    /**
     * 修改用户手机号
     *
     * @param sysUser 用户表信息
     * @return 结果
     */
    public SysUser changeWxPhone(SysUser sysUser);
}
